Adding first pass at ES6 Class support #354
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Been messing around with ES6 lately, so I decided to take the plunge and add proper Class support.
There is a good chance this may have bugs, or things that I have overlooked, however it appears to be working quite well so far.
This is before - as you can see (or not, if you aren't familiar with my color scheme), it's creating the method declarations within the class definition as actual function executions.

This is after - it properly interprets the function definitions and re-uses existing match groups. It also has the benefit of working in very bizarre contexts, as can be seen here (I probably haven't tested every possible scenario, so please let me know if you find issues)
